package com.course.db;

import java.sql.ResultSet;
import java.util.Date;

public class Teacher extends ExecuteDB {

	//members
	private int teacher_id;
	//private String teacher_cname;
	private int user_id;
	private String introduction;
	private String strSql;
	
	private String team;
	private String teacher_cname;
	private int teacher_sex;  //0 states male, 1 states female
	private Date teacher_birthday;
	private int teacher_marrage;
	private String teacher_nation;
	private int teacher_politics_status;
	private String teacher_identify;
	private String teacher_native_place;
	private String teacher_email;
	private String teacher_home_phone;
	private String teacher_address;
	private String teacher_mobile_phone;
	private String teacher_no;
	private String teacher_education;
	private String teacher_profession;
	private String teacher_graduate_school;
	private String teacher_professional_title;
	private String teacher_skill_level;
	private Date teacher_skill_level_date;
	private String teacher_department;
	private String teacher_position;
	private String teacher_office_phone;
	private String teacher_contact_phone;
	private Date teacher_work_date;
	private Date teacher_attend_date;
	private int teacher_status;
	private String teacher_photo_src;
	private Date teacher_create_date;
	private Date teacher_modified_date;
	

	public Teacher()
	{
		this.teacher_id = 0;
		this.teacher_cname = "";
		this.introduction = "";
		this.user_id = 0;
	}
	
	public String CountSql()
	{
		this.strSql = "select count(*) from basic_teacher";
		return this.strSql;
	} 
	
	//add a teacher
	public boolean add()
	{
		
		String title = "(teacher_cname,teacher_sex,teacher_birthday,teacher_marrage,teacher_nation,teacher_politics_status,teacher_identify,teacher_native_place,teacher_email,teacher_home_phone,teacher_address,teacher_mobile_phone,teacher_no,teacher_education,teacher_profession,teacher_graduate_school,teacher_professional_title,teacher_skill_level,teacher_skill_level_date,teacher_department,teacher_position,teacher_office_phone,teacher_contact_phone,teacher_work_date,teacher_attend_date,teacher_status,teacher_photo_src,teacher_create_date,teacher_modified_date,user_id)";
		String value = "values('"+this.teacher_cname+"','";
		value += this.teacher_sex +"','";
		value += this.teacher_birthday +"','";
		value += this.teacher_marrage +"','";
		value += this.teacher_nation +"','";
		value += this.teacher_politics_status +"','";
		value += this.teacher_identify +"','";
		value += this.teacher_native_place +"','";
		value += this.teacher_email +"','";
		value += this.teacher_home_phone +"','";
		value += this.teacher_address +"','";
		value += this.teacher_mobile_phone +"','";
		value += this.teacher_no +"','";
		value += this.teacher_education +"','";
		value += this.teacher_profession +"','";
		value += this.teacher_graduate_school +"','";
		value += this.teacher_professional_title +"','";
		value += this.teacher_skill_level +"','";
		value += this.teacher_skill_level_date +"','";
		value += this.teacher_department +"','";
		value += this.teacher_position +"','";
		value += this.teacher_office_phone +"','";
		value += this.teacher_contact_phone +"','";
		value += this.teacher_work_date +"','";
		value += this.teacher_attend_date +"','";
		value += this.teacher_status +"','";
		value += this.teacher_photo_src +"','";
		value += this.teacher_create_date +"','";
		value += this.teacher_modified_date +"','";
		value += this.user_id +"')";

		this.strSql="insert into basic_teacher ";
		//this.strSql=this.strSql + "(teacher_cname,user_id) ";
		//this.strSql=this.strSql + "values('" + this.teacher_cname + "','" + this.user_id + "')";
		this.strSql=this.strSql + title;
		this.strSql=this.strSql + value;
		
		System.out.println(this.strSql);
		boolean isAdd = super.exeSql(this.strSql);
        return isAdd;
	}
	
	public int lastid()
	{
		int lid = 0;
		this.strSql = "select last_insert_id() as id from basic_teacher limit 1";
		ResultSet rs = null;
		try
		{
			rs = super.exeQuery(this.strSql);
			if (rs.next())
				lid = rs.getInt("id");
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
		return lid;
	}
	
	//delete a teacher by id
    public boolean delete(int TeacherID)
    {
       this.strSql = "delete from basic_teacher where teacher_id in (";
       this.strSql = this.strSql + TeacherID +")";

       boolean isDelete = super.exeSql(this.strSql);
       return isDelete;
    }
    
  //initialize teacher information
 	public boolean init()
	{
		this.strSql="select * from `basic_teacher` where teacher_id=";
		this.strSql=this.strSql + "'" + this.teacher_id + "'";

		try
		{
			ResultSet rs = super.exeQuery(this.strSql);
			if (rs.next())
			{
				this.teacher_id=rs.getInt("teacher_id");
				this.teacher_cname=rs.getString("teacher_cname");
				this.user_id=rs.getInt("user_id");
				return true;
			}
			else
			{
				return false;
			}
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
			return false;
		}
	}
 	
 	//modify teacher infomation
    public boolean modify_teacher()
	{
		this.strSql="update basic_teacher set";
		this.strSql=this.strSql + " teacher_cname=" + "'" + this.teacher_cname + "',";
		this.strSql=this.strSql + " user_id='" + this.user_id + "'";
		this.strSql=this.strSql + " where teacher_id=" + this.teacher_id;
		
		boolean isUpdate = super.exeSql(this.strSql);

		return isUpdate;
	}
    
  //show teachers
    public ResultSet show_teachers()
	{
		this.strSql="select * from `basic_teacher`";
		ResultSet rs = null;
		try
		{
			rs = super.exeQuery(this.strSql);
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
		return rs;
	}
    
    public int teacher_id( )
    {
    	int teacher_id = 0;
    	this.strSql = "select teacher_id from `basic_teacher` where user_id = " + this.user_id;
		ResultSet rs = null;
    	try
		{
			rs = super.exeQuery(this.strSql);
			
			if(rs.first())
				teacher_id = rs.getInt("teacher_id");
			else
				teacher_id = 0;
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
    	
    	return teacher_id;
    }
    
    public ResultSet show_courses()
    {
    	this.strSql="select * from `course_basic` where Id in (select course_id from `open_course` where teacher_id = "+ this.teacher_id +" )";
		ResultSet rs = null;
		
		try
		{
			rs = super.exeQuery(this.strSql);
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
		
		return rs;
    }

	public int getId() {
		return teacher_id;
	}

	public void setId(int id) {
		teacher_id = id;
	}

	public String getName() {
		return teacher_cname;
	}

	public void setName(String name) {
		this.teacher_cname = name;
	}

	public int getUser_id() {
		return user_id;
	}

	public void setUser_id(int user_id) {
		this.user_id = user_id;
	}

	public String getIntroduction() {
		return introduction;
	}

	public void setIntroduction(String introduction) {
		this.introduction = introduction;
	}

	public String getStrSql() {
		return strSql;
	}

	public void setStrSql(String strSql) {
		this.strSql = strSql;
	}

	public int getTeacher_id() {
		return teacher_id;
	}

	public void setTeacher_id(int teacher_id) {
		this.teacher_id = teacher_id;
	}

	
	//new 
	public String getTeam() {
		return team;
	}

	public void setTeam(String team) {
		this.team = team;
	}

	public String getTeacher_cname() {
		return teacher_cname;
	}

	public void setTeacher_cname(String teacher_cname) {
		this.teacher_cname = teacher_cname;
	}

	public int getTeacher_sex() {
		return teacher_sex;
	}

	public void setTeacher_sex(int teacher_sex) {
		this.teacher_sex = teacher_sex;
	}

	public Date getTeacher_birthday() {
		return teacher_birthday;
	}

	public void setTeacher_birthday(Date teacher_birthday) {
		this.teacher_birthday = teacher_birthday;
	}

	public int getTeacher_marrage() {
		return teacher_marrage;
	}

	public void setTeacher_marrage(int teacher_marrage) {
		this.teacher_marrage = teacher_marrage;
	}

	public String getTeacher_nation() {
		return teacher_nation;
	}

	public void setTeacher_nation(String teacher_nation) {
		this.teacher_nation = teacher_nation;
	}

	public int getTeacher_politics_status() {
		return teacher_politics_status;
	}

	public void setTeacher_politics_status(int teacher_politics_status) {
		this.teacher_politics_status = teacher_politics_status;
	}

	public String getTeacher_identify() {
		return teacher_identify;
	}

	public void setTeacher_identify(String teacher_identify) {
		this.teacher_identify = teacher_identify;
	}

	public String getTeacher_native_place() {
		return teacher_native_place;
	}

	public void setTeacher_native_place(String teacher_native_place) {
		this.teacher_native_place = teacher_native_place;
	}

	public String getTeacher_email() {
		return teacher_email;
	}

	public void setTeacher_email(String teacher_email) {
		this.teacher_email = teacher_email;
	}

	public String getTeacher_home_phone() {
		return teacher_home_phone;
	}

	public void setTeacher_home_phone(String teacher_home_phone) {
		this.teacher_home_phone = teacher_home_phone;
	}

	public String getTeacher_address() {
		return teacher_address;
	}

	public void setTeacher_address(String teacher_address) {
		this.teacher_address = teacher_address;
	}

	public String getTeacher_mobile_phone() {
		return teacher_mobile_phone;
	}

	public void setTeacher_mobile_phone(String teacher_mobile_phone) {
		this.teacher_mobile_phone = teacher_mobile_phone;
	}

	public String getTeacher_no() {
		return teacher_no;
	}

	public void setTeacher_no(String teacher_no) {
		this.teacher_no = teacher_no;
	}

	public String getTeacher_education() {
		return teacher_education;
	}

	public void setTeacher_education(String teacher_education) {
		this.teacher_education = teacher_education;
	}

	public String getTeacher_profession() {
		return teacher_profession;
	}

	public void setTeacher_profession(String teacher_profession) {
		this.teacher_profession = teacher_profession;
	}

	public String getTeacher_graduate_school() {
		return teacher_graduate_school;
	}

	public void setTeacher_graduate_school(String teacher_graduate_school) {
		this.teacher_graduate_school = teacher_graduate_school;
	}

	public String getTeacher_professional_title() {
		return teacher_professional_title;
	}

	public void setTeacher_professional_title(String teacher_professional_title) {
		this.teacher_professional_title = teacher_professional_title;
	}

	public String getTeacher_skill_level() {
		return teacher_skill_level;
	}

	public void setTeacher_skill_level(String teacher_skill_level) {
		this.teacher_skill_level = teacher_skill_level;
	}

	public Date getTeacher_skill_level_date() {
		return teacher_skill_level_date;
	}

	public void setTeacher_skill_level_date(Date teacher_skill_level_date) {
		this.teacher_skill_level_date = teacher_skill_level_date;
	}

	public String getTeacher_department() {
		return teacher_department;
	}

	public void setTeacher_department(String teacher_department) {
		this.teacher_department = teacher_department;
	}

	public String getTeacher_position() {
		return teacher_position;
	}

	public void setTeacher_position(String teacher_position) {
		this.teacher_position = teacher_position;
	}

	public String getTeacher_office_phone() {
		return teacher_office_phone;
	}

	public void setTeacher_office_phone(String teacher_office_phone) {
		this.teacher_office_phone = teacher_office_phone;
	}

	public String getTeacher_contact_phone() {
		return teacher_contact_phone;
	}

	public void setTeacher_contact_phone(String teacher_contact_phone) {
		this.teacher_contact_phone = teacher_contact_phone;
	}

	public Date getTeacher_work_date() {
		return teacher_work_date;
	}

	public void setTeacher_work_date(Date teacher_work_date) {
		this.teacher_work_date = teacher_work_date;
	}

	public Date getTeacher_attend_date() {
		return teacher_attend_date;
	}

	public void setTeacher_attend_date(Date teacher_attend_date) {
		this.teacher_attend_date = teacher_attend_date;
	}

	public int getTeacher_status() {
		return teacher_status;
	}

	public void setTeacher_status(int teacher_status) {
		this.teacher_status = teacher_status;
	}

	public String getTeacher_photo_src() {
		return teacher_photo_src;
	}

	public void setTeacher_photo_src(String teacher_photo_src) {
		this.teacher_photo_src = teacher_photo_src;
	}

	public Date getTeacher_create_date() {
		return teacher_create_date;
	}

	public void setTeacher_create_date(Date teacher_create_date) {
		this.teacher_create_date = teacher_create_date;
	}

	public Date getTeacher_modified_date() {
		return teacher_modified_date;
	}

	public void setTeacher_modified_date(Date teacher_modified_date) {
		this.teacher_modified_date = teacher_modified_date;
	}

}
